File system và hệ điều hành Hệ_thống_tập_tin

Nhiều hệ điều hành bao gồm hỗ trợ cho nhiều hơn một file system. Đôi khi hệ điều hành và file system được đan xen chặt chẽ đến mức khó có thể tách rời các chức năng của file system.

Cần phải có một giao diện được cung cấp bởi phần mềm hệ điều hành giữa người dùng và file system. Giao diện này có thể là văn bản (như được cung cấp bởi giao diện dòng lệnh, chẳng hạn như shell Unix hoặc OpenVMS DCL) hoặc đồ họa (như được cung cấp bởi giao diện người dùng đồ họa, như trình duyệt file). Nếu đồ họa, phép ẩn dụ của thư mục, chứa tài liệu, tệp khác và thư mục lồng nhau thường được sử dụng.

Hệ điều hành Unix và tương tự Unix

Các hệ điều hành tương tự Unix tạo ra một hệ thống tệp ảo, làm cho tất cả các file trên tất cả các thiết bị dường như tồn tại trong một hệ thống phân cấp duy nhất. Điều này có nghĩa, trong các hệ thống đó, có một thư mục gốc và mọi file hiện có trên hệ thống được đặt bên dưới nó ở đâu đó. Các hệ thống tương tự Unix có thể sử dụng đĩa RAM hoặc tài nguyên chia sẻ mạng làm thư mục gốc.

Các hệ thống tương tự Unix gán tên thiết bị cho từng thiết bị, nhưng đây không phải là cách các file trên thiết bị đó được truy cập. Thay vào đó, để có quyền truy cập vào các file trên thiết bị khác, trước tiên, hệ điều hành phải được thông báo những file đó sẽ xuất hiện trong cây thư mục. Quá trình này được gọi là "mount" một file system. Ví dụ, để truy cập các file trên CD-ROM, người ta phải báo với hệ điều hành "Lấy file system từ CD-ROM này và làm cho nó xuất hiện trong thư mục tương tự". Thư mục được cung cấp cho hệ điều hành được gọi là điểm gắn kết  - nó có thể, ví dụ, là /media. Thư mục /media tồn tại trên nhiều hệ thống Unix (như được chỉ định trong Tiêu chuẩn phân cấp file system) và được dành riêng để sử dụng làm điểm gắn kết cho phương tiện lưu động như CD, DVD, ổ USB hoặc đĩa mềm. Nó có thể trống hoặc có thể chứa các thư mục con để gắn các thiết bị riêng lẻ. Nói chung, chỉ quản trị viên (tức là người dùng root) mới có thể cho phép gắn hệ thống tệp.

Các hệ điều hành tương tự Unix thường bao gồm phần mềm và công cụ hỗ trợ trong quá trình gắn kết và cung cấp cho nó chức năng mới. Một số trong những chiến lược này đã được đặt ra "auto-mount" như một sự phản ánh mục đích của chúng.

  • Trong nhiều tình huống, các file system khác với root cần phải có sẵn ngay khi hệ điều hành đã khởi động. Do đó, tất cả các hệ thống tương tự Unix đều cung cấp phương tiện để gắn hệ thống file khi khởi động. Quản trị viên hệ thống xác định các file system này trong file cấu hình fstab (vfstab trong Solaris), cũng chỉ ra các tùy chọn và điểm gắn kết.
  • Trong một số trường hợp, không cần phải gắn một số hệ thống tệp nhất định khi khởi động, mặc dù việc sử dụng chúng có thể được mong muốn sau đó. Có một số tiện ích cho các hệ thống tương tự Unix cho phép gắn các hệ thống tệp được xác định trước theo yêu cầu.
  • Phương tiện di động đã trở nên rất phổ biến với các nền tảng máy vi tính. Chúng cho phép các chương trình và dữ liệu được truyền giữa các máy mà không có kết nối vật lý. Ví dụ phổ biến bao gồm ổ đĩa flash USB, CD-ROMDVD. Do đó, các tiện ích đã được phát triển để phát hiện sự hiện diện và tính sẵn có của một phương tiện và sau đó gắn phương tiện đó mà không có sự can thiệp của người dùng.
  • Các hệ thống tương tự Unix tiến bộ cũng đã giới thiệu một khái niệm gọi là siêu dữ liệu; ví dụ, dự án Linux supermount-ng. Ví dụ, một đĩa mềm đã có siêu dữ liệu có thể được gỡ bỏ khỏi hệ thống. Trong trường hợp bình thường, đĩa đã có thể được đồng bộ hóa và sau đó ngắt kết nối trước khi gỡ bỏ. Đã cung cấp đồng bộ hóa, một đĩa khác có thể được đưa vào ổ đĩa. Hệ thống tự động thông báo rằng đĩa đã thay đổi và cập nhật nội dung điểm gắn kết để phản ánh phương tiện mới.
  • Một automounter sẽ tự động mount một file system khi một tài liệu tham khảo được thực hiện cho các thư mục trên đỉnh mà nó phải được gắn kết. Điều này thường được sử dụng cho các file system trên các máy chủ mạng, thay vì dựa vào các sự kiện như chèn phương tiện, như sẽ phù hợp với phương tiện lưu động.

Linux

Linux hỗ trợ nhiều file system, nhưng các lựa chọn phổ biến cho đĩa hệ thống trên thiết bị cục bộ bao gồm họ ext * (ext2, ext3ext4), XFS, JFSbtrfs. Đối với flash thô không có flash translation layer (FTL) hoặc Memory Technology Device (MTD), có UBIFS, JFFS2 và YAFFS, trong số những thứ khác. SquashFS là một file system chỉ đọc nén phổ biến.

Solaris

Solaris trong các bản phát hành trước đó được mặc định là UFS (không ghi nhật ký hoặc không đăng nhập) cho các file system bổ sung và có thể khởi động. Solaris mặc định, hỗ trợ và mở rộng UFS.

Hỗ trợ cho các file system khác và các cải tiến quan trọng đã được thêm vào theo thời gian, bao gồm VxFS của Veritas, Sun Microsystems (phân cụm) QFS, Sun Microsystems (ghi nhật ký) UFS, và Sun Microsystems (mã nguồn mở, poolable, nén 128 bit và sửa lỗi) ZFS.

Các phần mở rộng kernel đã được thêm vào Solaris để cho phép hoạt động Veritas VxFS có thể khởi động. Logging hay ghi nhật ký đã được thêm vào UFS trong của Sun Solaris 7. Các phiên bản của Solaris 10, Solaris Express, OpenSolaris và các biến thể nguồn mở khác của hệ điều hành Solaris sau đó đã hỗ trợ ZFS có khả năng khởi động.

Logical Volume Management cho phép mở rộng một file system trên nhiều thiết bị nhằm mục đích thêm dự phòng, dung lượng và/hoặc thông lượng. Các môi trường kế thừa trong Solaris có thể sử dụng Solaris Volume Manager (trước đây gọi là Solstice DiskSuite). Nhiều hệ điều hành (bao gồm Solaris) có thể sử dụng Veritas Volume Manager. Các hệ điều hành hiện đại dựa trên Solaris làm lu mờ nhu cầu quản lý khối lượng thông qua việc tận dụng các kho lưu trữ ảo trong ZFS.

macOS

macOS (trước đây là Mac OS X) sử dụng  Apple File System (APFS), gần đây đã thay thế một file system được kế thừa từ hệ điều hành Mac cổ điển có tên HFS Plus (HFS+). Apple cũng sử dụng thuật ngữ "Mac OS Extended" cho HFS+.[11][12] HFS Plus là một siêu dữ liệu và trường hợp bảo quản nhưng (thường) case-insensitive file system. Do nguồn gốc Unix của macOS, phân quyền Unix đã được thêm vào HFS Plus. Các phiên bản sau của HFS Plus đã thêm nhật ký để ngăn ngừa tham nhũng cấu trúc file system và đưa ra một số tối ưu hóa cho các thuật toán phân bổ nhằm cố gắng tự động chống phân mảnh các file mà không yêu cầu trình chống phân mảnh bên ngoài.

Tên file có thể lên tới 255 ký tự. HFS Plus sử dụng Unicode để lưu trữ tên file. Trên macOS, kiểu file có thể đến từ mã loại, được lưu trữ trong siêu dữ liệu của file hoặc phần mở rộng tên file.

HFS Plus có ba loại liên kết: liên kết cứng kiểu Unix, liên kết tượng trưng kiểu Unix và bí danh. Các bí danh được thiết kế để duy trì một liên kết đến file gốc của chúng ngay cả khi chúng được di chuyển hoặc đổi tên; chúng không được giải thích bởi chính file system mà bởi mã Trình quản lý file trong vùng người dùng.

macOS 10.13 High Sierra, được công bố vào ngày 5 tháng 6 năm 2017 tại sự kiện WWDC của Apple, sử dụng Apple File System trên các ổ đĩa SSD.

macOS cũng hỗ trợ hệ thống tệp UFS, xuất phát từ Unix Fast File System BSD thông qua NeXTSTEP. Tuy nhiên, kể từ Mac OS X Leopard, macOS không còn có thể được cài đặt trên ổ UFS, hệ thống trước Leopard cũng không thể cài đặt trên ổ UFS được nâng cấp lên Leopard.[13] Kể từ khi Mac OS X Lion các hỗ trợ UFS đã bị loại bỏ hoàn toàn.

Các phiên bản mới hơn của macOS có khả năng đọc và ghi vào các file system FAT cũ (16 và 32) phổ biến trên Windows. Chúng cũng có khả năng đọc các file system NTFS mới hơn của Windows. Để ghi vào file system NTFS trên các phiên bản macOS trước phần mềm bên thứ ba của Mac OS X Snow Leopard là cần thiết. Mac OS X 10.6 (Snow Leopard) và sau đó cho phép ghi vào file system NTFS, nhưng chỉ sau khi thay đổi cài đặt hệ thống không tầm thường (phần mềm bên thứ ba tồn tại tự động hóa việc này).[14]

Cuối cùng, macOS hỗ trợ đọc và ghi file system exFAT kể từ Mac OS X Snow Leopard, bắt đầu từ phiên bản 10.6.5.[15]

Microsoft Windows

Danh sách thư mục trong shell lệnh Windows

Windows sử dụng các file system FAT, NTFS, exFAT, Live File System và ReFS (những thứ cuối cùng chỉ được hỗ trợ và sử dụng được trong Windows Server 2012, Windows Server 2016, Windows 8, Windows 8.1Windows 10; Windows không thể khởi động từ nó).

Windows sử dụng một ký tự ổ đĩa trừu tượng ở cấp độ người dùng để phân biệt một đĩa hoặc phân vùng khác. Ví dụ: đường dẫn C:\WINDOWS đại diện cho một thư mục WINDOWS trên phân vùng được đại diện bởi chữ C. Ổ C: thường được sử dụng nhiều nhất cho phân vùng ổ đĩa cứng chính, trên đó Windows thường được cài đặt và từ đó khởi động. "Truyền thống" này đã trở nên ăn sâu đến mức các lỗi tồn tại trong nhiều ứng dụng đưa ra giả định rằng ổ đĩa mà hệ điều hành được cài đặt là C. Việc sử dụng các ký tự ổ đĩa và truyền thống sử dụng "C" làm ký tự ổ đĩa cho phân vùng ổ đĩa cứng chính, có thể được truy tìm đến MS-DOS, trong đó các chữ cái A và B được dành riêng cho tối đa hai ổ đĩa mềm. Điều này đến lượt nó bắt nguồn từ CP/M trong những năm 1970 và cuối cùng là từ CP / CMS của IBM năm 1967.

FAT

Họ file system FAT được hỗ trợ bởi hầu hết các hệ điều hành cho máy tính cá nhân, bao gồm tất cả các phiên bản WindowsMS-DOS/PC DOS, OS/2 và DR-DOS. (PC-DOS là phiên bản OEM của MS-DOS, MS-DOS ban đầu được dựa trên 86-DOS của SCP. DR-DOS dựa trên Concurrent DOS của Digital Research, phiên bản kế thừa của CP/M-86. Do đó, các file system FAT rất phù hợp dưới dạng định dạng trao đổi chung giữa các máy tính và thiết bị thuộc hầu hết mọi loại và độ tuổi.

file system FAT theo dõi nguồn gốc của nó trở lại tiền thân FAT 8 bit (không tương thích) trong Standalone Disk BASIC và dự án MDOS/MIDAS tồn tại trong thời gian ngắn. [cần dẫn nguồn]

Trong những năm qua, file system đã được mở rộng từ FAT12 sang FAT16 và FAT32. Các tính năng khác nhau đã được thêm vào hệ thống tệp bao gồm thư mục con, hỗ trợ bảng mã, thuộc tính mở rộng và tên file dài. Các bên thứ ba như Digital Research đã kết hợp hỗ trợ tùy chọn để xóa tracking và các lược đồ bảo mật đa người dùng dựa trên ổ đĩa/thư mục/file để hỗ trợ mật khẩu và quyền truy cập file và thư mục như quyền đọc/ghi/thực thi/xóa. Hầu hết các tiện ích mở rộng này không được Windows hỗ trợ.

Các file system FAT12 và FAT16 có giới hạn về số lượng mục trong thư mục gốc của file system và có các hạn chế về kích thước tối đa của các ổ đĩa hoặc phân vùng có định dạng FAT.

FAT32 giải quyết các giới hạn trong FAT12 và FAT16, ngoại trừ giới hạn kích thước file gần bằng 4GB, nhưng vẫn còn hạn chế so với NTFS.

FAT12, FAT16 và FAT32 cũng có giới hạn tám ký tự cho tên file và ba ký tự cho phần mở rộng (chẳng hạn như.exe). Điều này thường được gọi là giới hạn tên tệp 8.3. VFAT, một phần mở rộng tùy chọn cho FAT12, FAT16 và FAT32, được giới thiệu trong Windows 95Windows NT 3.5, cho phép các tên file dài (LFN) được lưu trữ trong file system FAT theo kiểu tương thích ngược.

NTFS

NTFS, được giới thiệu với hệ điều hành Windows NT vào năm 1993, cho phép kiểm soát quyền dựa trên ACL. Các tính năng khác cũng được NTFS hỗ trợ bao gồm liên kết cứng, nhiều luồng file, lập chỉ mục thuộc tính, theo dõi hạn ngạch, file thưa thớt, mã hóa, nén và các điểm lặp lại (thư mục hoạt động như điểm gắn kết cho các file system khác, liên kết tượng trưng, liên kết, liên kết lưu trữ từ xa).

exFAT

exFAT là một file system độc quyền và bằng sáng chế được bảo vệ bằng với lợi thế nhất định so với NTFS đối với hệ thống tập tin cấp cao.

exFAT không tương thích ngược với các file system FAT như FAT12, FAT16 hoặc FAT32. file system được hỗ trợ với các hệ thống Windows mới hơn, như Windows Server 2003, Windows Vista, Windows 2008, Windows 7, Windows 8 và gần đây, hỗ trợ đã được thêm cho Windows XP.[16]

exFAT được hỗ trợ trong macOS bắt đầu với phiên bản 10.6.5 (Snow Leopard). Hỗ trợ trong các hệ điều hành khác rất ít do Microsoft chưa công bố các thông số kỹ thuật của file system và việc triển khai hỗ trợ cho exFAT cần phải có giấy phép. exFAT là file system duy nhất được hỗ trợ đầy đủ trên cả macOS và Windows có thể lưu các tệp lớn hơn 4GB. [cần dẫn nguồn]